<?php
/**
 * CLASE TORNEO PRUEBA
 *
 * Clase para ejecutar las pruebas unitarias de la clase torneo , por eso extiende de Framework test case
 * @author CLOCK PROGRAMMING
 * @version 1.0
 * @package Pruebas
 */
class TorneoPrueba extends PHPUnit_Framework_TestCase
{
	/**
	 * @covers Torneo::crearTorneo
	 * Se crea el escenario , con un arreglo de fechas  y nuevo nombre para el torneo en creacion.
	 * 
	 */    
	public function testCrearTorneo()
	{
	    //ULTIMO TORNEO CREADO EL 50	 
		$fechas = array('2011-01-12','2011-01-13','2011-01-14','2011-01-16','2011-01-17','2011-01-18','2011-01-20','2011-01-21','2011-01-22','2011-01-23','2011-01-22','2011-01-23');
		$torneo = new Torneo('',"MUNDIALITO ING SOFT -  2012 ",2);		 
		//$this->assertEquals(true, $torneo->crearTorneo($fechas));
	//PARA QUE NO NOS GENERE MAS TORNEOS ..DURANTE LA CREACION Y EJECUCION DE OTRAS PRUEBAS
		
	}
	
	/**
	 * @covers Torneo::asociarEquiposTorneo
	 * A un torneo existente se le asocian una serie de equipos, en este caso si existe el torneo y si existen los equipos
	 *
	 */
	public function testAsociarEquipos()
	{
	
		$Torneo= new Torneo(57,"",1);
		$equipos = array('4','5','6','7');
	//	$this->assertEquals(true, $Torneo->asociarEquiposTorneo($equipos));
		// MIENTRAS EL DESARROLLO DE OTRAS PRUEBAS 
	
	}
	
	/**
	 * @covers Torneo::asociarEquiposTorneo
	 * A un torneo existente se le asocian una serie de equipos, en este caso si existe el torneo y si existen los equipos, pero el torneo ya ha sido sorteado.
	 *
	 */
	public function testAsociarEquiposTorneoSorteado()
	{
	
		$Torneo= new Torneo(57,"",1);
		$equipos = array('4','5','6','7');
	//	$this->assertEquals(false, $Torneo->asociarEquiposTorneo($equipos));
	
	}
	
	/**
	 * @covers Torneo::asociarEquiposTorneo
	 * A un torneo existente se le asocian una serie de equipos, en este caso si existe el torneo y no se ingresan equipos
	 *
	 */
	public function testAsociarEquiposEquiposNoValidos()
	{	
		
		$Torneo= new Torneo(57,"",1);
		$equipos = array();
	//	$this->assertEquals(false, $Torneo->asociarEquiposTorneo($equipos));
	
	}
	
	
	/**
	 * @covers Torneo::sortearTorneo
	 * A un torneo existente , pero sin fechas suficientes para realizar, se intenta realizar el sorteo.
	 * CANTIDAD DE EQUIPO SUPERIOR PARA LAS FECHAS DEL TORNEO
	 */
	public function testSortearTorneosSinFechasSuficientes()
	{		
		$Torneo= new Torneo(36,"",1);
		$equipos = array();
		$this->assertEquals(4, $Torneo->sortearTorneo());	
	}
	
	
	/**
	 * @covers Torneo::sortearTorneo
	 * A un torneo existente , con fechas   pero sin equipos suficientes para suplir esas fechas, se intenta realizar el torneo
	 * CANTIDAD DE EQUIPO INFERIOR PARA LAS FECHAS DEL TORNEO
	 */
	public function testSortearTorneosSinEquiposSuficientes()
	{
		$Torneo= new Torneo(49,"",1);
		$equipos = array();
		$this->assertEquals(3, $Torneo->sortearTorneo());
	}
	
	
	
	/**
	 * @covers Torneo::sortearTorneo
	 * A un torneo existente , sin equipos asociados ,  se intenta realizar el torneo
	 * CANTIDAD DE EQUIPO INFERIOR PARA LAS FECHAS DEL TORNEO
	 */
	public function testSortearTorneosSinEquipos()
	{
		$Torneo= new Torneo(54,"",1);
		$equipos = array();
		$this->assertEquals(2, $Torneo->sortearTorneo());
	}
	
	/**
	 * @covers Torneo::sortearTorneo
	 * A un torneo existente , sin fechas programadas pero si con equipos asociados ,  se intenta realizar el torneo
	 * CANTIDAD DE EQUIPO INFERIOR PARA LAS FECHAS DEL TORNEO
	 */
	public function testSortearTorneosSinFechas()
	{
		$Torneo= new Torneo(56,"",1);
		$equipos = array();
		$this->assertEquals(1, $Torneo->sortearTorneo());
	}
	
	
	
	
	/**
	 * @covers Torneo::sortearTorneo
	 * A un torneo existente , con fechas y equipos existentes y asociados correctamente.
	 * SORTEO EXITOSO
	 */
	public function testSortearTorneosCondicionesOptimas()
	{	
		$Torneo= new Torneo(57,"",1);		
		$this->assertEquals(0, $Torneo->sortearTorneo());	
	
	    
	}
	
	
	
	
	
	
	
	
}